﻿using System;
using System.ComponentModel;
using System.Drawing.Design;
using ProtoBuf;
using Wise.TimeWarrior.Helpers;

namespace Wise.TimeWarrior.DTO
{
    /// <summary>
    /// Class descirbes configuration data object
    /// </summary>
    [ProtoContract]
    [Serializable]
    public class ConfigurationDto
    {
        /// <summary>
        /// Start Time 
        /// </summary>

        [ProtoMember(1)]
        [CategoryAttribute("Working Time Settings"), DescriptionAttribute("Start of Working Houers"), DisplayName("Start Time")]
        [Editor(typeof(TimePickerEditor), typeof(UITypeEditor))]
        public string WorkingHoursStartWatchTime { get; set; }

        /// <summary>
        /// End Time
        /// </summary>

        [ProtoMember(2)]
        [CategoryAttribute("Working Time Settings"), DescriptionAttribute("End of Working Houers"), DisplayName("End Time")]
        [Editor(typeof(TimePickerEditor), typeof(UITypeEditor))]
        public string WorkingHoursEndWatchTime { get; set; }

        /// <summary>
        /// Sum of working minutes per day
        /// </summary>

        [ProtoMember(3)]
        [CategoryAttribute("Working Time Settings"), DescriptionAttribute("Minutes of working Houer Per Day"), DisplayName("Sum Of Working Minutes per day")]
        public int MinutesOfWorkingHouersPerDay { set; get; }

        /// <summary>
        /// Free time per day
        /// </summary>

        [ProtoMember(4)]
        [CategoryAttribute("Working Time Settings"), DescriptionAttribute("Minutes of free time per working day"), DisplayName("Sum Of allowed free time minutes")]
        public int MinutesOfFreeTimePerDay { set; get; }
        /// <summary>
        /// Path to data store
        /// </summary>

        [ProtoMember(5)]
        [CategoryAttribute("Application Settings"), DescriptionAttribute("Path to data store location"), DisplayName("Data Store Path")]
        [Editor(typeof(DirectoryPicker), typeof(UITypeEditor))]
        public string PathToDataStore { set; get; }
    }
}
